package main

import (
	"fmt"
)

func main(){
	//不指定长度的数组创建方式
	var arrary = [...] int {2,3,4}
	for index,value:= range arrary{
		fmt.Println(index)
		fmt.Println(value)
	}

	var site = [2][3] int{
		{11,12,13},
		{21,22,23}}
	for i := 0 ;i<2;i++ {
		for j:=0;j<3;j++{
			fmt.Println(site[i][j])
		}
	}


	pointer()

	ptr()
}

func pointer(){
	var len = 20
	var pointer_val *int
	pointer_val = &len

	fmt.Printf("len的内存地址：%d\n",pointer_val)
	fmt.Printf("pointer_val地址指向的变量值为：%d\n",*pointer_val)
}

func ptr(){
	var v int = 100
	var ptr *int
	//指针的指针
	var pttr ** int

	var pttrv *** int

	ptr = &v
	pttr = &ptr
	pttrv = &pttr

	fmt.Printf("变量值的地址：%d\n",ptr)
	fmt.Printf("ptr指向的值：%d\n",*ptr)

	fmt.Printf("变量值的地址的指针地址：%d\n",pttr)
	fmt.Printf("pttr指向的值：%d\n",**pttr)

	fmt.Printf("pttr变量值的地址的指针地址：%d\n",pttrv)
	fmt.Printf("pttrv指向的值：%d\n",***pttrv)
}